As computing technology has advanced, the capabilities of computers and the programs they are able to run have also advanced. This has led to an increase in computer functionality that is available to users. While users may enjoy this increase in functionality, it is not without its problems. One such problem is that the increased computer capabilities and program complexity can lead to unintended results (e.g., due to bugs) when running programs on these computers. The complexity of the computers and programs being run make it difficult to identify the cause of such unintended results and thus make it difficult to prevent them from being repeated.